
import path from 'path';
import { ConfigEnv, defineConfig, loadEnv } from "vite";
import { getEnv } from './build/getEnv'
// 可以使用 defineConfig 工具函数，这样不用 jsdoc 注解也可以获取类型提示：
export default defineConfig((config: ConfigEnv) => {
  //   interface ConfigEnv {
  //     /**
  //      * 'serve': during dev (`vite` command)
  //      * 'build': when building for production (`vite build` command)
  //      */
  //     command: 'build' | 'serve';
  //     mode: string;
  //     isSsrBuild?: boolean;
  //     isPreview?: boolean;
  // }
  // 可以根据config参数command（命令）的不同和mode（开发环境或生产环境）的不同做不同环境的配置

  const root = process.cwd(); // 项目根目录
  // mode表示当前环境，root表示项目根目录,''表示前缀
  const env = loadEnv(config.mode, root);//加载环境变量 loadEnv是Vite提供的函数，可以加载.env文件里的环境变量
  console.log(env)
  const ViteEnv = getEnv(env) // 获取环境变量
  return {
    // 配置选项
    server: {
      port: ViteEnv.VITE_APP_PORT || 3000,//端口
      open: ViteEnv.VITE_APP_OPEN || true,//开发服务器启动时，自动在浏览器中打开应用程序。当该值为字符串时，它将被用作 URL 的路径名。
    },
    esbuild: {
      pure: ViteEnv.VITE_DROP_CONSOLE? ['console.log'] : [], // 去除console.log
    }
  }
});
